运行环境
- CentOS 6.5
- JDK 1.7
- Hadoop 2.4.1
- Hive 0.13
- ZooKeeper 3.4.5
- kafka_2.9.2-0.8.1
- Spark 2.1.3
- scala 2.11.8
安装CentOS 6.5
CentOS 6.5防火墙配置
关闭防火墙1
2
3
4service iptables stop
chkconfig iptables off
vi /etc/selinux/config
SELINUX=disabled
JDK 1.7安装
我下载的CentOS自带,所以不用安装,装之前用java -version测试是否自带JDK。
- 将jdk-7u60-linux-i586.rpm通过WinSCP上传到虚拟机中
安装JDK:
1
rpm -ivh jdk-7u65-linux-i586.rpm
配置jdk相关的环境变量
1
2
3
4vi .bashrc
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
source .bashrc测试jdk安装是否成功:
1
java -version
1
rm -f /etc/udev/rules.d/70-persistent-net.rules
安装第二台和第三台虚拟机
- 安装上述步骤,再安装两台一模一样环境的虚拟机,因为后面hadoop和spark都是要搭建集群的。
- 集群的最小环境就是三台。因为后面要搭建ZooKeeper、kafka等集群。
- 另外两台机器的hostname分别设置为spark2和spark3即可,通过终端输入ifconfig查看ip,记下。
安装好之后,记得要在三台机器的/etc/hosts文件中,配置全三台机器的ip地址到hostname的映射,而不能只配置本机。比如我的:
1
2
3
4
5
6[spark1@spark1 Desktop]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.211.55.24 spark1
10.211.55.25 spark2
10.211.55.26 spark3mac中Parallels Desktop会自动配置到虚拟机的地址映射,开启虚拟机以后在mac中可以直接ssh root@spark1进行连接
配置集群ssh免密码登录
首先在三台机器上配置对本机的ssh免密码登录
生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下1
ssh-keygen -t rsa
将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
1
2cd /root/.ssh
cp id_rsa.pub authorized_keys接着配置三台机器互相之间的ssh免密码登录,使用ssh-copy-id -i spark{N}命令将本机的公钥拷贝到指定机器的authorized_keys文件中:
1
2
3
4
5
6[root@spark1 ~]# ssh-copy-id -i spark2
[root@spark1 ~]# ssh-copy-id -i spark3
[root@spark2 ~]# ssh-copy-id -i spark1
[root@spark2 ~]# ssh-copy-id -i spark3
[root@spark3 ~]# ssh-copy-id -i spark1
[root@spark3 ~]# ssh-copy-id -i spark2